]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
util: Force text direction of time strings
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 23 Jun 2017 15:37:13 +0000 (17:37 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Wed, 5 Jul 2017 14:49:04 +0000 (16:49 +0200)
While the string returned by formatTime() should follow the locale's
text direction as a whole, the actual time part is always expected
to put hours on the left and minutes to the right. It is possible to
enforce that by inserting a left-to-right mark, but so far this is
only done by the Hebrew translation. So in order to not require all
other RTL translations to be fixed individually, just insert the
mark into the returned string ourselves like gnome-desktop's WallClock
code does[0].

[0] https://git.gnome.org/browse/gnome-desktop/tree/libgnome-desktop/gnome-wall-clock.c?h=gnome-3-24#n267

https://bugzilla.gnome.org/show_bug.cgi?id=784130

js/misc/util.js

index e9aa9ef8a7d0822d2c60abe444ecab67aaa1bcbd..5abcb54c96f9c0cf8e40a4de19330ad88909d621 100644 (file)
@@ -280,7 +280,10 @@ function formatTime(time, params) {
             // xgettext:no-c-format
             format = N_("%B %d %Y, %l\u2236%M %p");
     }
-    return date.format(Shell.util_translate_time_string(format));
+
+    let formattedTime = date.format(Shell.util_translate_time_string(format));
+    // prepend LTR-mark to colon/ratio to force a text direction on times
+    return formattedTime.replace(/([:\u2236])/g, '\u200e$1');
 }
 
 function createTimeLabel(date, params) {